通过js来实现一个二叉查找树。

二叉查找树,数据结构中很经典也很基础的知识。今天我们来用js实现一个二叉树的功能。
      首先,我们来分解功能,实现一个二叉树。节点,树的整体结构,插入 方法,当然还有查找方法(中序,先序,后序)

第一步,我们来实现节点类,

function Node(data) {
  this.data = data
  this.left = left
  this.right = right
}
Node.prototype.getData = function() {
  return this.data
}

第二步,我们来实现树的整体结构类以及插入方法。

function Bst () {
this.root = null
}
Bst.prototype.insert = function(data) {
  let node = new Node(data)
  if (!this.root) {
     this.root = node
  } else {
     let cur = this.root
     let mid = null
     while (true) {
        mid = cur
        if (data < cur.data) {
           cur = cur.left
           if (!cur) {
               mid.left = node
               break
           }
        } else {
           cur = cur.right
           if (!cur) {
               mid.right = node
               break
           }

         }
     }
  }
}            

接下来我们来测试下。我们在浏览器中new一个Bst,并且插入一些数值,看看是否和我们所想要的结果一样。

let c = new Bst()
c.insert(50)
c.insert(40)
c.insert(60)
c.insert(39)
c.insert(45)

可以看到如我们所预期的一样,二叉查找树正确的显示出来了。

posted on 2018-12-01 14:22  未来-竭尽全力  阅读(957)  评论(0编辑  收藏  举报

导航